The Internet, which is a set of loosely connected computer networks, is growing rapidly in terms of geographical coverage, number of users and number of services. It is a new media that is slowly removing the boundaries between all its users around the world.
Applications and services on the Internet are referred by uniform resource locators (URL) such as “ftp://ftp.site/filename”, which is an example of a file location in the Internet, or “http://web.site/webpage”, which is an example of a web page. However the personal computers (PC) and the servers that host Internet applications communicate by referring to Internet Protocol (IP) addresses of each other, such as 172.168.12.67. PCs hide this complexity by consulting Domain Name Service (DNS), which maps the URLs to IP addresses.
Typically when a user wants to access a service or an URL, it first consults its DNS server to resolve the name of the service to an IP address. If the DNS server does not have that information it consults a root DNS server, a gTLD (generic top level domain) server, then finally the DNS server where the service is located. After user's DNS server obtains the IP address of the service it sends this information to the user and then the user accesses the service.
Since today's users are located around the world and accessing wide Internet services such as web pages with news or weather forecast, service providers need to distribute the content at several geographical locations. Today these locations, also known as mirror sites, are updated with the same information.
In some implementations, while accessing these distributed services, users are asked to choose a mirror site of their choice. In some cases the users may be asked to answer a series of questions such as their country, preferred language, or even the city they live. These steps not only slow the information retrieval process but also frustrate the users. In some other cases, this manual process is automated by the use of “cookies”, which are small set of information about the users stored on their PCs and are sent to the servers every time users access the server. This technique obviously has some security and privacy drawbacks.
Every Internet connected PC and server has a unique IP address assigned by their administrator, or by their Internet Service Provider (ISP). By some methods it is possible to create a database of all of these addresses with their geographical location information. By capturing and examining the user data packets, more specifically the source IP address of DNS queries from these users, and by using the mentioned IP address/location database, it would be possible to find out where the users are located in the world. Therefore by using this technique an Internet service provider could determine the user location and customize its content based on that information.
This technology can enable ISPs to supply faster services since they can direct the users to the closest servers. Web portal companies can provide the local news, weather forecast or even local advertisements that belong to user's neighborhood. Online shops can restrict certain goods to be sold to certain countries. Similarly, gambling sites would limit their service to some regions where gambling is allowed. Web sites that provide information in different languages would let the user access the information automatically in the language spoken in user's geographical area.
There are a few implementations of providing content based on users” geo-location. First, it is possible to integrate some software, which has the database of all IP addresses and their locations, to the server. Through this software's application program interface (API) the server determines user's geo-location and modifies or picks the right content based on the user's location. This method obviously has some limitations as it is highly customized for that service only. It requires customized program development and modification of server configuration. In addition, it supports only the service it is integrated and it needs to be installed on every server. Furthermore, not every type of service can be supported by this method due to limitations in some server programs.
Another possible method is using specialized network equipment, which is configured to be the authoritative DNS server of the site. All the DNS queries are directed to it. After it determines the location of the user it directs the user to the closest service site relative to user's location. This method not only requires dramatic modification of the DNS and network setup but also limits the capabilities of the DNS since these equipment are not designed to replace DNS servers. For example they do not support Name Server (NS) records, which are used for delegating the sub domains; zone transfers, incremental updates, and other special resource records.
Therefore a new apparatus and a method are proposed herein to eliminate the shortcomings and limitations of the methods mentioned above while maintaining the DNS functionality with possibly richer feature set.